<?php

namespace App\Contracts;


/**
 * Class Logger
 *
 * @method debug($e, $name = null, $group = null) 详细的调试信息。
 * @method info($e, $name = null, $group = null) 200 有意义的事件，比如用户登录、SQL日志
 * @method notice($e, $name = null, $group = null) 250 正常但是值得注意的事件
 * @method warning($e, $name = null, $group = null) 300 异常事件，但是并不是错误。比如使用了废弃了的API，错误地使用了一个API，以及其他不希望发生但是并非必要的错误
 * @method error($e, $name = null, $group = null) 400 运行时的错误，不需要立即注意到，但是需要被专门记录并监控到
 * @method critical($e, $name = null, $group = null) 500 边界条件/危笃场景。比如应用组件不可用了，未预料到的异常
 * @method alert($e, $name = null, $group = null) 550 必须立即采取行动。比如整个网站都挂了，数据库不可用了等。这种情况应该发送短信警报，并把你叫醒
 * @method emergency($e, $name = null, $group = null) 600 紧急请求：系统不可用了
 */
interface LoggerInterface
{
    /**
     * 强制开启调试
     * @return $this
     */
    public function forceDebug();

    /**
     * 是否调试模式
     * @return bool
     */
    public function isDebug(): bool;
}